//go:build ignore

package main

import (
	"fmt"
	"math/rand"
	"time"
)

// 随机数累加、累乘
func main() {
	var sum_odd int = 0    // 存储累加的和
	var sum_even int64 = 1 // 存储累乘的积

	r := rand.New(rand.NewSource(time.Now().UnixNano())) // 兼容 go 1.20 以前的版本
	for i := 0; i < 20; i++ {
		v := r.Intn(20)
		for v == 0 { // 确保随机数为非零正整数
			v = r.Intn(20)
		}
		if v&0x01 == 1 { // 也可以用 v%2 == 1 判断
			sum_odd += v // 奇数，累加
		} else {
			sum_even *= int64(v) // 偶数，累乘
		}

		// 输出生成的随机数用于验证结果的准确性
		if (i+1)%10 == 0 {
			fmt.Printf("%2d\n", v)
		} else {
			fmt.Printf("%2d ", v)
		}
	}
	fmt.Println("奇数累加求和: ", sum_odd)
	fmt.Println("偶数累乘求积: ", sum_even)
}


// 批改意见
// 1. 随机数的奇偶顺序判断有问题，你这里i是索引，因此当i&0x01=0时，说明i是偶数，但是此时i对应的位置应该是奇数